Tracking a moving sports object in varied environmental conditions

ABSTRACT

Systems, methods and computer-readable media are provided for determining an effective altitude in relation to a moving sports object. In some examples, a method includes determining respective values for an air temperature, an air pressure, and a relative humidity of an environment of interest. Based on the determined respective values of the air temperature, the air pressure, and the relative humidity, an air density for the environment of interest is calculated to derive a first air density value. A second air density value is derived for a reference environment. An absolute value of a difference between the first and second air densities is compared against a preset comparison value and, based on the comparison being equal to or smaller than the preset comparison value, an output including an indicator of the effective altitude is generated.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/742,041, filed Jan. 14, 2020, which application claims priority toU.S. Provisional Patent Application Ser. No. 62/792,034, filed Jan. 14,2019, each of which are incorporated by reference herein in theirentirety.

BACKGROUND

In many sports, objects are projected through the air to a reach anintended position to gain a score or to reach a desired positionunderway to scoring. Success depends on the sportsperson's skill andability, as well as the way the prevailing environmental conditionsinfluence the projected object's flight. Unfortunately, atmosphericeffects on an object's flight path can be complex and not easy tounderstand.

Projectile flight may be affected by air density. Air density howeverdepends on several factors including temperature, relative humidity, andair pressure. A sportsperson is therefore challenged to understand thesefactors, particularly in real time, and can find it very hard to relateprojectile flight to the different factors that together determine airdensity.

BRIEF SUMMARY

Examples of the present disclosure seek to provide a convenient,practical way in which a sportsperson (for example, a player or coach)can understand, apply and predict the effects of atmospheric conditionsin his or her sport. In one example, a “simplification” is providedwhich allows a sportsperson to understand and build up knowledge andskills about the way atmospheric conditions affect the flight of theobject against just one variable, namely an “effective altitude”discussed further below. In being presented as a dimension of length(e.g. a foot), the variable is also much easier to relate to than themore abstract concept of “air density”.

As mentioned above, in many sports, objects are projected through theair to a reach an intended position to gain a score or to reach adesired position underway to scoring. Success depends on thesportsperson's skill and ability, as well as the way the prevailingenvironmental conditions influence the projected object's flight. Wind,representing movement of the air medium, also influences an object'sflight. Both wind speed and direction, both variable over time,location, and height, may affect the flight of an object.

Another subtler factor influencing the flight of an object is the airdensity, a characteristic of the medium through which the objecttravels. Air density, as well as the translational and rotational speedsof the object, are the main determinants of forces that act on theobject in flight. In the games of tennis, baseball and golf the loss ofspeed through drag force and horizontal curvature of a flight paththrough lateral forces related to rotational motion of the ball isclearly observed and often exploited by sportspersons.

The way in which the atmosphere's air density can affect an object'sflight path are complex and not easy to understand. In some examples ofthis disclosure, these problems are addressed by providing a simple,practical way in which a sportsperson can understand, apply and predictthe effects of air density in his sport.

Accordingly, some examples introduce the use of a single variable,referred to herein as an “effective altitude”, to specify anatmosphere's air density. To do this, a reference atmosphere is usedwhose air temperature and relative humidity values are fixed at presetvalues. As just one example, and without limiting example values, apreset air temperature may be 15 degrees Celsius (53 degrees Fahrenheit)and the preset relative humidity may be 50%. Using known relationsbetween the atmospheric variables that determine air pressure, aneffective altitude is calculated as the altitude in this referenceatmosphere where the air density equals the air density of an atmosphereof interest. An atmosphere of interest can for example be the prevailingatmosphere in which the sportsperson is participating.

With knowledge of the effective altitude, and no more, a sportspersoncan in some examples understand the effects of the atmosphere on his orher performance as a single variable. During a sports career he or shecan reference his or her performance to effective altitude by practicingin different atmospheric conditions. Once a sportsperson understands howtheir performance varies with or is related to effective altitude, hecan predict his performance in future or expected atmosphericconditions. He can also characterize the atmospheric conditions at acompetitive event into a value of effective altitude allowing thesportsperson to understand what adjustments to make for the prevailingconditions.

In several aspects, the disclosed subject matter differs from whatcurrently exists. For example, it is known that projectile flight may beaffected by air density. Air density is in turn dependent on severalfactors including temperature, relative humidity, and air pressure. Itis hard for a sportsperson to understand and apply multiple factors thatmay act together in determining air density affecting the flight of aprojectile. Some present examples provide the sportsperson with asimpler, single variable description of atmospheric conditions presentedin an intuitive way.

In some examples, the disclosed technology can be incorporated into acomputerized training aid for sportspeople. Some examples include acomputerized tactical aid that a sportsperson can use at a competitiveevent.

Thus, in one example embodiment, a method of tracking a moving sportsobject includes determining respective values for an air temperature, anair pressure, and a relative humidity of an environment of interest;based on the determined respective values of the air temperature, theair pressure, and the relative humidity, calculating an air density forthe environment of interest to derive a first air density value for theenvironment of interest; determining an altitude value for a referenceenvironment to derive a first altitude value; using the first altitudevalue to calculate a related air pressure value; using the calculatedrelated air pressure value, and a preset temperature value and a presetrelative humidity value for the reference environment, calculating anair density for the reference environment to derive a second air densityvalue; comparing the first air density value and the second air densityvalue to derive an absolute difference value; comparing the absolutedifference value against a preset comparison value; and generating anoutput based on whether the absolute difference value is equal to orsmaller than the preset comparison value, the output including anindicator of the effective altitude.

In one example embodiment, a system for tracking a moving sports objectcomprises processors and a memory storing instructions that, whenexecuted by at least one processor among the processors, cause thesystem to perform operations comprising determining respective valuesfor an air temperature, an air pressure, and a relative humidity of anenvironment of interest; based on the determined respective values ofthe air temperature, the air pressure, and the relative humidity,calculating an air density for the environment of interest to derive afirst air density value for the environment of interest; determining analtitude value for a reference environment to derive a first altitudevalue; using the first altitude value to calculate a related airpressure value; using the calculated related air pressure value, and apreset temperature value and a preset relative humidity value for thereference environment, calculating an air density for the referenceenvironment to derive a second air density value; comparing the firstair density value and the second air density value to derive an absolutedifference value; comparing the absolute difference value against apreset comparison value; and generating an output based on whether theabsolute difference value is equal to or smaller than the presetcomparison value, the output including an indicator of the effectivealtitude.

In another example embodiment, a computer-readable medium (CRM)comprises instructions that, when read by a computer, cause the computerto perform operations comprising, determining respective values for anair temperature, an air pressure, and a relative humidity of anenvironment of interest; based on the determined respective values ofthe air temperature, the air pressure, and the relative humidity,calculating an air density for the environment of interest to derive afirst air density value for the environment of interest; determining analtitude value for a reference environment to derive a first altitudevalue; using the first altitude value to calculate a related airpressure value; using the calculated related air pressure value, and apreset temperature value and a preset relative humidity value for thereference environment, calculating an air density for the referenceenvironment to derive a second air density value; comparing the firstair density value and the second air density value to derive an absolutedifference value; comparing the absolute difference value against apreset comparison value; and generating an output based on whether theabsolute difference value is equal to or smaller than the presetcomparison value, the output including an indicator of the effectivealtitude.

Further or other variations or orders of the method operations arepossible. In some examples, the related air pressure value is based on:

Related air pressure=A*exp (−Altitude*B), where Air Pressure is inPascal's and Altitude is in meters, and A and B are empirical constants.

In some examples, the operations further comprise iteratively adjustingthe value of the first altitude value, and repeating the operations toderive the absolute difference value, until a matching condition isreached in which the absolute difference value is equal to or smallerthan the preset comparison value.

In some examples, the operations further comprise assigning the value ofthe first altitude value to the effective altitude and generating theindicator of the effective altitude as the output.

In some examples, the operations further comprise calculating orgenerating a flightpath of the sports object based on the effectivealtitude.

In some examples, the operations further comprise including a value of awind speed or direction into the calculation or generation of theflightpath.

In some examples, the operations further comprise including a value of aheight difference between a release position and a landing position ofthe sports object into the calculation or generation of the flightpath.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view of components of a system 100 for determiningan effective altitude in relation to a moving object or projectile, oran environment in which the object or projectile moves, in accordancewith example embodiments.

FIG. 2 is a flow chart depicting example operations in a method 200 ofdetermining an effective altitude, in accordance with an exampleembodiment.

FIG. 3 is a block diagram illustrating a networked system, according tosome example embodiments.

FIG. 4 is a block diagram showing some details of a system fordetermining an effective altitude, according to some exampleembodiments.

FIG. 5 is a block diagram illustrating representative softwarearchitecture, which may be used in conjunction with various hardwarearchitectures herein described.

FIG. 6 is a block diagram illustrating components of a machine,according to some example embodiments, able to read instructions from amachine-readable medium (e.g., a machine-readable storage medium) andperform any one or more of the methodologies discussed herein.

DETAILED DESCRIPTION

“CARRIER SIGNAL” in this context refers to any intangible medium that iscapable of storing, encoding, or carrying instructions for execution bythe machine, and includes digital or analog communications signals orother intangible medium to facilitate communication of suchinstructions. Instructions may be transmitted or received over thenetwork using a transmission medium via a network interface device andusing any one of a number of well-known transfer protocols.

“CLIENT DEVICE” in this context refers to any machine that interfaces toa communications network to obtain resources from one or more serversystems or other client devices. A client device may be, but is notlimited to, a mobile phone, desktop computer, laptop, portable digitalassistants (PDAs), smart phones, tablets, ultra-books, netbooks,laptops, multi-processor systems, microprocessor-based or programmableconsumer electronics, game consoles, set-top boxes, or any othercommunication device that a user may use to access a network.

“COMMUNICATIONS NETWORK” in this context refers to one or more portionsof a network that may be an ad hoc network, an intranet, an extranet, avirtual private network (VPN), a local area network (LAN), a wirelessLAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), ametropolitan area network (MAN), the Internet, a portion of theInternet, a portion of the Public Switched Telephone Network (PSTN), aplain old telephone service (POTS) network, a cellular telephonenetwork, a wireless network, a Wi-Fi® network, another type of network,or a combination of two or more such networks. For example, a network ora portion of a network may include a wireless or cellular network andthe coupling may be a Code Division Multiple Access (CDMA) connection, aGlobal System for Mobile communications (GSM) connection, or other typeof cellular or wireless coupling. In this example, the coupling mayimplement any of a variety of types of data transfer technology, such asSingle Carrier Radio Transmission Technology (1×RTT), Evolution-DataOptimized (EVDO) technology, General Packet Radio Service (GPRS)technology, Enhanced Data rates for GSM Evolution (EDGE) technology,third Generation Partnership Project (3GPP) including 3G, fourthgeneration wireless (4G) networks, Universal Mobile TelecommunicationsSystem (UMTS), High Speed Packet Access (HSPA), WorldwideInteroperability for Microwave Access (WiMAX), Long Term Evolution (LTE)standard, others defined by various standard setting organizations,other long range protocols, or other data transfer technology.

“COMPONENT” in this context refers to a device, physical entity or logichaving boundaries defined by function or subroutine calls, branchpoints, application program interfaces (APIs), or other technologiesthat provide for the partitioning or modularization of particularprocessing or control functions. Components may be combined via theirinterfaces with other components to carry out a machine process. Acomponent may be a packaged functional hardware unit designed for usewith other components and a part of a program that usually performs aparticular function of related functions. Components may constituteeither software components (e.g., code embodied on a machine-readablemedium) or hardware components. A “hardware component” is a tangibleunit capable of performing certain operations and may be configured orarranged in a certain physical manner. In various example embodiments,one or more computer systems (e.g., a standalone computer system, aclient computer system, or a server computer system) or one or morehardware components of a computer system (e.g., a processor or a groupof processors) may be configured by software (e.g., an application orapplication portion) as a hardware component that operates to performcertain operations as described herein. A hardware component may also beimplemented mechanically, electronically, or any suitable combinationthereof. For example, a hardware component may include dedicatedcircuitry or logic that is permanently configured to perform certainoperations. A hardware component may be a special-purpose processor,such as a Field-Programmable Gate Array (FPGA) or an ApplicationSpecific Integrated Circuit (ASIC). A hardware component may alsoinclude programmable logic or circuitry that is temporarily configuredby software to perform certain operations. For example, a hardwarecomponent may include software executed by a general-purpose processoror other programmable processor. Once configured by such software,hardware components become specific machines (or specific components ofa machine) uniquely tailored to perform the configured functions and areno longer general-purpose processors. It will be appreciated that thedecision to implement a hardware component mechanically, in dedicatedand permanently configured circuitry, or in temporarily configuredcircuitry (e.g., configured by software) may be driven by cost and timeconsiderations. Accordingly, the phrase “hardware component” (or“hardware-implemented component”) should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner or to perform certainoperations described herein. Considering embodiments in which hardwarecomponents are temporarily configured (e.g., programmed), each of thehardware components need not be configured or instantiated at any oneinstance in time. For example, where a hardware component comprises ageneral-purpose processor configured by software to become aspecial-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware components) at different times. Softwareaccordingly configures a particular processor or processors, forexample, to constitute a particular hardware component at one instanceof time and to constitute a different hardware component at a differentinstance of time. Hardware components can provide information to, andreceive information from, other hardware components. Accordingly, thedescribed hardware components may be regarded as being communicativelycoupled. Where multiple hardware components exist contemporaneously,communications may be achieved through signal transmission (e.g., overappropriate circuits and buses) between or among two or more of thehardware components. In embodiments in which multiple hardwarecomponents are configured or instantiated at different times,communications between such hardware components may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware components have access. Forexample, one hardware component may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware component may then, at alater time, access the memory device to retrieve and process the storedoutput. Hardware components may also initiate communications with inputor output devices, and can operate on a resource (e.g., a collection ofinformation). The various operations of example methods described hereinmay be performed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implementedcomponents that operate to perform one or more operations or functionsdescribed herein. As used herein, “processor-implemented component”refers to a hardware component implemented using one or more processors.Similarly, the methods described herein may be at least partiallyprocessor-implemented, with a particular processor or processors beingan example of hardware. For example, at least some of the operations ofa method may be performed by one or more processors orprocessor-implemented components. Moreover, the one or more processorsmay also operate to support performance of the relevant operations in a“cloud computing” environment or as a “software as a service” (SaaS).For example, at least some of the operations may be performed by a groupof computers (as examples of machines including processors), with theseoperations being accessible via a network (e.g., the Internet) and viaone or more appropriate interfaces (e.g., an Application ProgramInterface (API)). The performance of certain of the operations may bedistributed among the processors, not only residing within a singlemachine, but deployed across a number of machines. In some exampleembodiments, the processors or processor-implemented components may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the processors or processor-implemented components may bedistributed across a number of geographic locations.

“MACHINE-READABLE MEDIUM” in this context refers to a component, deviceor other tangible media able to store instructions and data temporarilyor permanently and may include, but is not be limited to, random-accessmemory (RAM), read-only memory (ROM), buffer memory, flash memory,optical media, magnetic media, cache memory, other types of storage(e.g., Erasable Programmable Read-Only Memory (EEPROM)) and/or anysuitable combination thereof. The term “machine-readable medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, or associated caches and servers)able to store instructions. The term “machine-readable medium” shallalso be taken to include any medium, or combination of multiple media,that is capable of storing instructions (e.g., code) for execution by amachine, such that the instructions, when executed by one or moreprocessors of the machine, cause the machine to perform any one or moreof the methodologies described herein. Accordingly, a “machine-readablemedium” refers to a single storage apparatus or device, as well as“cloud-based” storage systems or storage networks that include multiplestorage apparatus or devices. The term “machine-readable medium”excludes signals per se.

“PROCESSOR” in this context refers to any circuit or virtual circuit (aphysical circuit emulated by logic executing on an actual processor)that manipulates data values according to control signals (e.g.,“commands”, “op codes”, “machine code”, etc.) and which producescorresponding output signals that are applied to operate a machine. Aprocessor may, for example, be a Central Processing Unit (CPU), aReduced Instruction Set Computing (RISC) processor, a ComplexInstruction Set Computing (CISC) processor, a Graphics Processing Unit(GPU), a Digital Signal Processor (DSP), an Application SpecificIntegrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC)or any combination thereof. A processor may further be a multi-coreprocessor having two or more independent processors (sometimes referredto as “cores”) that may execute instructions contemporaneously.

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice applies to the software and dataas described below and in the drawings that form a part of thisdocument: Copyright 2019-2020, EDH US LLC, All Rights Reserved.

The description that follows includes systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative embodiments of the disclosure. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide an understanding of variousembodiments of the inventive subject matter. It will be evident,however, to those skilled in the art, that embodiments of the inventivesubject matter may be practiced without these specific details. Ingeneral, well-known instruction instances, protocols, structures, andtechniques are not necessarily shown in detail.

FIG. 1 is a schematic view of components of a system 100 for determiningan effective altitude in relation to a moving object or projectile, oran environment in which the object or projectile moves, in accordancewith example embodiments. Although examples of the present subjectmatter are discussed in relation to sports activities (sports objectsand projectiles), it will be appreciated that other applications arepossible where applicable.

An example system 100 includes environmental sensing and processingcomponents. The environmental sensing and processing components mayinclude components such as an air temperature and humidity meter 1, abarometer 2, a numerical processor 3, a computer program 4, an inputdevice 5, an output device 6, an anemometer 7, and preset values(presets) of temperature and relative humidity of a reference atmosphere8. Projectile tracking components for tracking a sports object may beassociated with or exchange data with the system 100. Trackingcomponents may include devices such as radar guns, doppler sensors, andboresight antennae.

In some examples, the air temperature and humidity meter 1 is used tomeasure the temperature and relative humidity of an atmosphere ofinterest. The barometer 2 is used to measure the air pressure of theatmosphere of interest at approximately the same time and place. Themeasurements are entered into the numerical processor 3 by means of theinput device 5. The numerical processor 3 is programmed with a computerprogram 4 that performs calculations to determine an effective altitudefor a reference atmosphere for the preset values of temperature andrelative humidity 8. The resulting effective altitude is presented as anoutput on the output device 6.

In some examples, measurements of wind speed and direction from ananemometer 7 can be input to the numerical processor 4 through the inputdevice 5. Wind speed and direction can be used by the computer program 5to calculate the effect of wind on the flight of the object, in additionto the effect of only air density. Other system components to deriveother variables or input values are possible. Measured or knowntemperature, pressure and humidity values of an atmosphere of interestcan be used to calculate an effective altitude for a referenceatmosphere.

Embodiments of the present subject matter may include methods. Withreference to FIG. 2 , example operations (steps) in a method 200 fordetermining an effective altitude in relation to a moving object orprojectile, or an environment (or atmosphere) in or through which theobject or projectile moves, are shown. These operations may be performediteratively, or in other order.

In Step 1 the air temperature, air pressure, and relative humidity ofthe environment of interest are determined. These values may bedetermined or derived by the environmental monitoring components of thetracking system 100 of FIG. 1 . In other examples, the values may bederived from devices embedded in electronic devices such as smart phonesor tablet computers. Other examples may include internet-based weatherdata sources that provide location specific atmospheric conditions.

Step 2 calculates the air density for the temperature, relativehumidity, and air pressure of the environment of interest. This resultof this calculation is “Air Density 1”. The numerical relations betweenthe variables may be determined, in some examples, in accordance withtechniques described in the Manual of the ICAO standard atmospherecalculations by the NACA, document number NACA-TN-3182, first publishedon May 1, 1954. In this publication, the relations between theatmospheric variables, as applicable to the lower atmosphere(troposphere) can be found.

In Step 3 an altitude value for the reference atmosphere is chosen orset (“Altitude 1”).

Step 4 uses the value of Altitude 1 to calculate a related Air Pressure.An example relation that can be used for this calculation is: AirPressure=A*exp (−Altitude*B), where Air Pressure is in Pascal's andAltitude is in meters, and A and B are empirical constants. Values for Aand B can be found for example in educational publications such as 1728Software Systems. In some examples, a relation between Altitude and AirPressure does not have to be precise as long as the chosen relation isused consistently.

Step 5 takes the calculated Air Pressure from Step 4 as well as a presetreference atmosphere temperature (for example be 15 degrees Celsius) anda preset relative humidity (for example 50%), and using the samerelationships or calculator used in Step 1, to calculate the Air Densityfor this set of values. The result of this step is “Air Density 2”.

Step 6 compares the values of Air Density 1 and Air Density 2. If theabsolute value of the difference is larger than an arbitrary smallamount (E), which can be a preset comparison value (or preset amount E),the process returns to Step 3. In Step 3 the value of Altitude 1 can beeither increased or decreased by a finite amount, and Steps 4, 5, and 6repeated. This process is repeated iteratively with the aim of finding avalue for Altitude 1 where the absolute value of the difference betweenAir density 1 and Air Density 2 is equal to or smaller than the presetamount E. When this condition is reached, Step 7 is performed where thevalue of Altitude 1 is assigned to the effective altitude for theatmosphere of interest and is presented as the output.

Some example methods 200 include programming a numerical processor,equipped with suitable input and output devices, with a computer programthat is designed to allow entry of measured or known atmospheric valuesof temperature, humidity and pressure. The computer program is inaddition programmed with the relevant scientific relationships toconvert atmospheric values to air pressure. In addition, the computerprogram configures the processor to calculate the air pressure relatedto a specific altitude, using a suitable scientific relationship. Thecomputer program reads the preset stored values of the referenceatmosphere and perform calculations in an iterative way to find thealtitude for the reference atmosphere where the air temperature is nearenough the same as the air pressure calculated for the atmosphere ofinterest, as specified by the input atmospheric values. This altitude(i.e. the effective altitude) is the desired result which can be outputon the numerical processor's output device.

In some example systems 100, at least the following components areprovided: a numerical processor (3), computer program (4), input device(5), output device (6), and stored preset reference atmosphere data (8).In some example systems 100, optional components may include atemperature and humidity meter (1), barometer (2), and anemometer (7).In some examples, temperature, humidity and air pressure data can beobtained from external systems including online weather data, so thatmeasuring instruments are not essential. Wind speed and direction data,if desired, can also be obtained from external weather data sources. Insome examples, the computer program can be adapted to include wind speedand direction, being movement of the air medium, in the calculation ofan object's flight in addition to the effects of air density. While notrelated to atmospheric conditions, other information of potentialsignificance to the sportsperson such as the height difference betweenthe object's release position and the expected or desired landingposition can also be input to and calculated by the computer program andprovide a corresponding output.

Thus, in some examples, a system 100 operator (typically a sportspersonor coach engaging with the output device 6) can calculate or be shown aneffective altitude for an atmosphere of interest. When practicing, thesportsperson can relate his or her performance to a single, simplevariable. When practicing or competing in different atmosphericconditions, he or she can relate their performance to the prevailingatmosphere by determining the effective altitude of the prevailingconditions and using their skill and experience to apply this knowledgeof the effective altitude to improve their performance. In someexamples, the disclosed technology can be incorporated into acomputerized training aid for sportspeople. Some examples include acomputerized tactical aid that a sportsperson can use at a competitiveevent.

With reference to FIG. 3 , an example embodiment of a high-level SaaSnetwork architecture 300 is shown. A networked system 316 providesserver-side functionality via a network 310 (e.g., the Internet or widearea network (WAN)) to a client device 308. A web client 302 and aprogrammatic client, in the example form of an application 304 arehosted and execute on the client device 308. The networked system 316includes and application server 322, which in turn hosts a system 306(for example the system 100 of FIG. 1 ) that provides a number offunctions and services to the application 304 that accesses thenetworked system 316. The application 304 also provides a number ofinterfaces described herein, which present output of the tracking andanalysis operations to a user of the client device 308. An interface forpresenting such output may be included in the output device 6 of FIG. 1.

The client device 308 enables a user to access and interact with thenetworked system 316. For instance, the user provides input (e.g., touchscreen input or alphanumeric input) to the client device 308, and theinput is communicated to the networked system 316 via the network 310.In this instance, the networked system 316, in response to receiving theinput from the user, communicates information back to the client device308 via the network 310 to be presented to the user.

An Application Program Interface (API) server 318 and a web server 320are coupled to, and provide programmatic and web interfacesrespectively, to the application server 322. The application server 322hosts a system 306, which includes components or applications. Theapplication server 322 is, in turn, shown to be coupled to a databaseserver 324 that facilitates access to information storage repositories(e.g., a database 326). In an example embodiment, the database 326includes storage devices that store information accessed and generatedby the system 306.

Additionally, a third-party application 314, executing on a third-partyserver 312, is shown as having programmatic access to the networkedsystem 316 via the programmatic interface provided by the ApplicationProgram Interface (API) server 318. For example, the third-partyapplication 314, using information retrieved from the networked system316, may support one or more features or functions on a website hostedby the third-party.

Turning now specifically to the applications hosted by the client device308, the web client 302 may access the various systems (e.g., system306) via the web interface supported by the web server 320. Similarly,the application 304 (e.g., an “app”) accesses the various services andfunctions provided by the system 306 via the programmatic interfaceprovided by the Application Program Interface (API) server 318. Theapplication 304 may, for example, an “app” executing on a client device308, such as an iOS or Android OS application to enable user to accessand input data on the networked system 316 in an off-line manner, and toperform batch-mode communications between the programmatic clientapplication 304 and the networked system 316.

Further, while the SaaS network architecture 300 shown in FIG. 3 employsa client-server architecture, the present inventive subject matter is ofcourse not limited to such an architecture, and could equally well findapplication in a distributed, or peer-to-peer, architecture system, forexample. The system 306 could also be implemented as a standalonesoftware program, which do not necessarily have networking capabilities.

FIG. 4 is a block diagram showing for the architectural details of asystem 306, according to some example embodiments. Specifically, thesystem 306 is shown to include an interface component 410 by which thesystem 306 communicates (e.g., over the network 408) with other systemswithin the SaaS network architecture 300. The interface component 410 iscollectively coupled to a Tracking component 406 that operates toperform one or more operations of the methods described herein.

FIG. 5 is a block diagram illustrating an example software architecture506, which may be used in conjunction with various hardwarearchitectures herein described. FIG. 5 is a non-limiting example of asoftware architecture and it will be appreciated that many otherarchitectures may be implemented to facilitate the functionalitydescribed herein. The software architecture 506 may execute on hardwaresuch as machine 1200 of FIG. 12 that includes, among other things,processors 1204, memory 1214, and I/O components 1218. A representativehardware layer 552 is illustrated and can represent, for example, themachine 1200 of FIG. 12 . The representative hardware layer 552 includesa processing unit 554 having associated executable instructions 504.Executable instructions 504 represent the executable instructions of thesoftware architecture 506, including implementation of the methods,components and so forth described herein. The hardware layer 552 alsoincludes memory and/or storage modules memory/storage 556, which alsohave executable instructions 504. The hardware layer 552 may alsocomprise other hardware 558.

In the example architecture of FIG. 5 , the software architecture 506may be conceptualized as a stack of layers where each layer providesparticular functionality. For example, the software architecture 506 mayinclude layers such as an operating system 502, libraries 520,applications 516 and a presentation layer 514. Operationally, theapplications 516 and/or other components within the layers may invokeapplication programming interface (API) API calls 508 through thesoftware stack and receive a response as in response to the API calls508. The layers illustrated are representative in nature and not allsoftware architectures have all layers. For example, some mobile orspecial purpose operating systems may not provide aframeworks/middleware 518, while others may provide such a layer. Othersoftware architectures may include additional or different layers.

The operating system 502 may manage hardware resources and providecommon services. The operating system 502 may include, for example, akernel 522, services 524 and drivers 526. The kernel 522 may act as anabstraction layer between the hardware and the other software layers.For example, the kernel 522 may be responsible for memory management,processor management (e.g., scheduling), component management,networking, security settings, and so on. The services 524 may provideother common services for the other software layers. The drivers 526 areresponsible for controlling or interfacing with the underlying hardware.For instance, the drivers 526 include display drivers, camera drivers,Bluetooth® drivers, flash memory drivers, serial communication drivers(e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audiodrivers, power management drivers, and so forth depending on thehardware configuration.

The libraries 520 provide a common infrastructure that is used by theapplications 516 and/or other components and/or layers. The libraries520 provide functionality that allows other software components toperform tasks in an easier fashion than to interface directly with theunderlying operating system 502 functionality (e.g., kernel 522,services 524 and/or drivers 526). The libraries 520 may include systemlibraries 544 (e.g., C standard library, and OpenCV libraries) that mayprovide functions such as memory allocation functions, stringmanipulation functions, mathematical functions, and the like. Inaddition, the libraries 520 may include API libraries 546 such as medialibraries (e.g., libraries to support presentation and manipulation ofvarious media format such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG),graphics libraries (e.g., an OpenGL framework that may be used to render2D and 3D in a graphic content on a display), database libraries (e.g.,SQLite that may provide various relational database functions), weblibraries (e.g., WebKit that may provide web browsing functionality),and the like. The libraries 520 may also include a wide variety of otherlibraries 548 to provide many other APIs to the applications 516 andother software components/modules.

The frameworks frameworks/middleware 518 (also sometimes referred to asmiddleware) provide a higher-level common infrastructure that may beused by the applications 516 and/or other software components/modules.For example, the frameworks/middleware 518 may provide various graphicuser interface (GUI) functions, high-level resource management,high-level location services, and so forth. The frameworks/middleware518 may provide a broad spectrum of other APIs that may be utilized bythe applications 516 and/or other software components/modules, some ofwhich may be specific to a particular operating system or platform.

The applications 516 include built-in applications 538 and/orthird-party applications 540. Examples of representative built-inapplications 538 may include, but are not limited to, a contactsapplication, a browser application, a book reader application, alocation application, a media application, a messaging application,and/or a game application. Third-party applications 540 may include anyan application developed using the ANDROID™ or IOS™ software developmentkit (SDK) by an entity other than the vendor of the particular platformand may be mobile software running on a mobile operating system such asIOS™, ANDROID™, WINDOWS® Phone, or other mobile operating systems. Thethird-party applications 540 may invoke the API calls 508 provided bythe mobile operating system (such as operating system 502) to facilitatefunctionality described herein.

The applications 516 may use built in operating system functions (e.g.,kernel 522, services 524 and/or drivers 526), libraries 520, andframeworks/middleware 518 to create user interfaces to interact withusers of the system. Alternatively, or additionally, in some systemsinteractions with a user may occur through a presentation layer, such aspresentation layer 514. In these systems, the application/component“logic” can be separated from the aspects of the application/componentthat interact with a user.

Some software architectures use virtual machines. In the example of FIG.5 , this is illustrated by a virtual machine 510. The virtual machine510 creates a software environment where applications/components canexecute as if they were executing on a hardware machine (such as themachine 600 of FIG. 6 , for example). The virtual machine 510 is hostedby a host operating system (operating system (OS) 536 in FIG. 5 ) andtypically, although not always, has a virtual machine monitor 560, whichmanages the operation of the virtual machine as well as the interfacewith the host operating system (i.e., operating system 502). A softwarearchitecture executes within the virtual machine 510 such as anoperating system operating system (OS) 536, libraries 534, frameworks532, applications 530 and/or presentation layer 528. These layers ofsoftware architecture executing within the virtual machine 510 can bethe same as corresponding layers previously described or may bedifferent.

FIG. 6 is a block diagram illustrating components of a machine 600,according to some example embodiments, able to read instructions from amachine-readable medium (e.g., a machine-readable storage medium) andperform any one or more of the methodologies discussed herein.Specifically, FIG. 6 shows a diagrammatic representation of the machine600 in the example form of a computer system, within which instructions610 (e.g., software, a program, an application, an applet, an app, orother executable code) for causing the machine 600 to perform any one ormore of the methodologies discussed herein may be executed. As such, theinstructions may be used to implement modules or components describedherein. The instructions transform the general, non-programmed machineinto a particular machine programmed to carry out the described andillustrated functions in the manner described. In alternativeembodiments, the machine 600 operates as a standalone device or may becoupled (e.g., networked) to other machines. In a networked deployment,the machine 600 may operate in the capacity of a server machine or aclient machine in a server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine 600 may comprise, but not be limited to, a server computer, aclient computer, a personal computer (PC), a tablet computer, a laptopcomputer, a netbook, a set-top box (STB), a personal digital assistant(PDA), an entertainment media system, a cellular telephone, a smartphone, a mobile device, a wearable device (e.g., a smart watch), a smarthome device (e.g., a smart appliance), other smart devices, a webappliance, a network router, a network switch, a network bridge, or anymachine capable of executing the instructions 610, sequentially orotherwise, that specify actions to be taken by machine 600. Further,while only a single machine 600 is illustrated, the term “machine” shallalso be taken to include a collection of machines that individually orjointly execute the instructions 610 to perform any one or more of themethodologies discussed herein.

The machine 600 may include processors 604, memory memory/storage 606,and I/O components 618, which may be configured to communicate with eachother such as via a bus 602. The memory/storage 606 may include a memory614, such as a main memory, or other memory storage, and a storage unit616, both accessible to the processors 604 such as via the bus 602. Thestorage unit 616 and memory 614 store the instructions 610 embodying anyone or more of the methodologies or functions described herein. Theinstructions 610 may also reside, completely or partially, within thememory 614, within the storage unit 616, within at least one of theprocessors 604 (e.g., within the processor's cache memory), or anysuitable combination thereof, during execution thereof by the machine600. Accordingly, the memory 614, the storage unit 616, and the memoryof processors 604 are examples of machine-readable media.

The I/O components 618 may include a wide variety of components toreceive input, provide output, produce output, transmit information,exchange information, capture measurements, and so on. The specific I/Ocomponents 618 that are included in a particular machine will depend onthe type of machine. For example, portable machines such as mobilephones will likely include a touch input device or other such inputmechanisms, while a headless server machine will likely not include sucha touch input device. It will be appreciated that the I/O components 618may include many other components that are not shown in FIG. 6 . The I/Ocomponents 618 are grouped according to functionality merely forsimplifying the following discussion and the grouping is in no waylimiting. In various example embodiments, the I/O components 618 mayinclude output components 626 and input components 628. The outputcomponents 626 may include visual components (e.g., a display such as aplasma display panel (PDP), a light emitting diode (LED) display, aliquid crystal display (LCD), a projector, or a cathode ray tube (CRT)),acoustic components (e.g., speakers), haptic components (e.g., avibratory motor, resistance mechanisms), other signal generators, and soforth. The input components 628 may include alphanumeric inputcomponents (e.g., a keyboard, a touch screen configured to receivealphanumeric input, a photo-optical keyboard, or other alphanumericinput components), point based input components (e.g., a mouse, atouchpad, a trackball, a joystick, a motion sensor, or other pointinginstrument), tactile input components (e.g., a physical button, a touchscreen that provides location and/or force of touches or touch gestures,or other tactile input components), audio input components (e.g., amicrophone), and the like.

In further example embodiments, the I/O components 618 may includebiometric components 630, motion components 634, environmentalenvironment components 636, or position components 638 among a widearray of other components. For example, the biometric components 630 mayinclude components to detect expressions (e.g., hand expressions, facialexpressions, vocal expressions, body gestures, or eye tracking), measurebiosignals (e.g., blood pressure, heart rate, body temperature,perspiration, or brain waves), identify a person (e.g., voiceidentification, retinal identification, facial identification,fingerprint identification, or electroencephalogram basedidentification), and the like. The motion components 634 may includeacceleration sensor components (e.g., accelerometer), gravitation sensorcomponents, rotation sensor components (e.g., gyroscope), and so forth.The environment components 636 may include, for example, illuminationsensor components (e.g., photometer), temperature sensor components(e.g., one or more thermometer that detect ambient temperature),humidity sensor components, pressure sensor components (e.g.,barometer), acoustic sensor components (e.g., one or more microphonesthat detect background noise), proximity sensor components (e.g.,infrared sensors that detect nearby objects), gas sensors (e.g., gasdetection sensors to detection concentrations of hazardous gases forsafety or to measure pollutants in the atmosphere), or other componentsthat may provide indications, measurements, or signals corresponding toa surrounding physical environment. The position components 638 mayinclude location sensor components (e.g., a Global Position System (GPS)receiver component), altitude sensor components (e.g., altimeters orbarometers that detect air pressure from which altitude may be derived),orientation sensor components (e.g., magnetometers), and the like.

Communication may be implemented using a wide variety of technologies.The I/O components 618 may include communication components 640 operableto couple the machine 600 to a network 632 or devices 620 via coupling622 and coupling 624 respectively. For example, the communicationcomponents 640 may include a network interface component or othersuitable device to interface with the network 632. In further examples,communication components 640 may include wired communication components,wireless communication components, cellular communication components,Near Field Communication (NFC) components, Bluetooth® components (e.g.,Bluetooth® Low Energy), Wi-Fi® components, and other communicationcomponents to provide communication via other modalities. The devices620 may be another machine or any of a wide variety of peripheraldevices (e.g., a peripheral device coupled via a Universal Serial Bus(USB)).

Moreover, the communication components 640 may detect identifiers orinclude components operable to detect identifiers. For example, thecommunication components processors communication components 640 mayinclude Radio Frequency Identification (RFID) tag reader components, NFCsmart tag detection components, optical reader components (e.g., anoptical sensor to detect one-dimensional bar codes such as UniversalProduct Code (UPC) bar code, multi-dimensional bar codes such as QuickResponse (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode,PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), oracoustic detection components (e.g., microphones to identify taggedaudio signals). In addition, a variety of information may be derived viathe communication components 640, such as, location via InternetProtocol (IP) geo-location, location via Wi-Fi® signal triangulation,location via detecting a NFC beacon signal that may indicate aparticular location, and so forth.

The computer-based data processing systems and methods described aboveare for purposes of example only and may be implemented in any type ofcomputer system or programming or processing environment, or in acomputer program, alone or in conjunction with hardware. The presentinventive subject matter may also be implemented in software stored on acomputer-readable medium and executed as a computer program on a generalpurpose or special purpose computer. For clarity, only those aspects ofthe system germane to the invention are described, and product detailswell known in the art are omitted. For the same reason, the computerhardware is not described in further detail. It should thus beunderstood that the present subject matter is not limited to anyspecific computer language, program, or computer. It is furthercontemplated that the present subject matter may be run on a stand-alonecomputer system or may be run from a server computer system that can beaccessed by a plurality of client computer systems interconnected overan intranet network, or that is accessible to clients over the Internet.In addition, many embodiments of the present subject matter haveapplication to a wide range of industries. To the extent the presentapplication discloses a system, the method implemented by that system,as well as software stored on a computer-readable medium and executed asa computer program to perform the method on a general purpose or specialpurpose computer, are within the scope of the present invention.Further, to the extent the present application discloses a method, asystem of apparatuses configured to implement the method are within thescope of the present subject matter. It should be understood, of course,that the foregoing relates to exemplary embodiments of the invention andthat modifications may be made without departing from the scope of theinvention as set forth in the claims further below.

Although the subject matter has been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader scope of the disclosed subject matter.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense. The accompanying drawingsthat form a part hereof, show by way of illustration, and not oflimitation, specific embodiments in which the subject matter may bepracticed. The embodiments illustrated are described in sufficientdetail to enable those skilled in the art to practice the teachingsdisclosed herein. Other embodiments may be utilized and derivedtherefrom, such that structural and logical substitutions and changesmay be made without departing from the scope of this disclosure. ThisDescription, therefore, is not to be taken in a limiting sense, and thescope of various embodiments is defined only by the appended claims,along with the full range of equivalents to which such claims areentitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

What is claimed is:
 1. A method for determining an effective altitude inrelation to a moving sports object, the method comprising operationsincluding: obtaining, with a processor, respective values for an airtemperature, an air pressure, and a relative humidity of an environmentof interest; based on the obtained respective values of the airtemperature, the air pressure, and the relative humidity, calculating,with the processor, an air density for the environment of interest toderive a first air density value for the environment of interest;determining, with the processor, an altitude value for a referenceenvironment to derive a first altitude value; using the first altitudevalue to calculate, with the processor, a related air pressure value;using the calculated related air pressure value, and a presettemperature value and a preset relative humidity value for the referenceenvironment, calculating, with the processor, an air density for thereference environment to derive a second air density value; comparing,with the processor, the first air density value and the second airdensity value to derive an absolute difference value; comparing, withthe processor, the absolute difference value against a preset comparisonvalue; and generating and displaying an output, on a display, the outputincluding an indicator of the effective altitude based on the comparisonof the absolute difference value against the preset comparison value. 2.The method of claim 1, further comprising iteratively adjusting thevalue of the first altitude value, and repeating the operations toderive the absolute difference value, until a matching condition isreached in which the absolute difference value is equal to or smallerthan the preset comparison value.
 3. The method of claim 1, furthercomprising assigning the value of the first altitude value to theeffective altitude and generating the indicator of the effectivealtitude as the output.
 4. The method of claim 1, further comprisingcalculating and displaying on the display a flightpath of the sportsobject based on the effective altitude.
 5. The method of claim 4,further comprising displaying on the display a value of a wind speed ordirection into the calculation or generation of the flightpath.
 6. Themethod of claim 4, further comprising displaying on the display a valueof a height difference between a release position and a landing positionof the sports object into the calculation or generation of theflightpath.
 7. The method of claim 1, wherein the obtaining includesobtaining the respective values via the Internet from weather datasources.
 8. The method of claim 1, wherein the obtaining includeselectronically obtaining the respective values from an air temperatureand humidity meter, barometer and anemometer embedded in an electronicdevice.
 9. A system for determining an effective altitude in relation toa moving sports object, the system including: a display; processors; anda memory storing instructions that, when executed by at least oneprocessor among the processors, cause the system to perform operationscomprising: obtaining respective values for an air temperature, an airpressure, and a relative humidity of an environment of interest; basedon the obtained respective values of the air temperature, the airpressure, and the relative humidity, calculating an air density for theenvironment of interest to derive a first air density value for theenvironment of interest; determining an altitude value for a referenceenvironment to derive a first altitude value; using the first altitudevalue to calculate a related air pressure value; using the calculatedrelated air pressure value, and a preset temperature value and a presetrelative humidity value for the reference environment, calculating anair density for the reference environment to derive a second air densityvalue; comparing the first air density value and the second air densityvalue to derive an absolute difference value; comparing the absolutedifference value against a preset comparison value; and generating anddisplaying an output, on a display, the output including an indicator ofthe effective altitude based on the comparison of the absolutedifference value against the preset comparison value.
 10. The system ofclaim 9, wherein the operations further comprise iteratively adjustingthe value of the first altitude value, and repeating the operations toderive the absolute difference value, until a matching condition isreached in which the absolute difference value is equal to or smallerthan the preset comparison value.
 11. The system of claim 9, wherein theoperations further comprise assigning the value of the first altitudevalue to the effective altitude and generating the indicator of theeffective altitude as the output.
 12. The system of claim 9, wherein theoperations further comprise calculating and displaying on the display aflightpath of the sports object based on the effective altitude.
 13. Thesystem of claim 12, wherein the operations further comprise displayingon the display a value of a wind speed or direction into the calculationor generation of the flightpath.
 14. The system of claim 12, wherein theoperations further comprise displaying on the display a value of aheight difference between a release position and a landing position ofthe sports object into the calculation or generation of the flightpath.15. A machine-readable medium comprising instructions that, when read bya machine, cause the machine to perform operations in a methoddetermining an effective altitude, the operations comprising, at least:obtaining respective values for an air temperature, an air pressure, anda relative humidity of an environment of interest; based on the obtainedrespective values of the air temperature, the air pressure, and therelative humidity, calculating an air density for the environment ofinterest to derive a first air density value for the environment ofinterest; determining an altitude value for a reference environment toderive a first altitude value; using the first altitude value tocalculate a related air pressure value; using the calculated related airpressure value, and a preset temperature value and a preset relativehumidity value for the reference environment, calculating an air densityfor the reference environment to derive a second air density value;comparing the first air density value and the second air density valueto derive an absolute difference value; comparing the absolutedifference value against a preset comparison value; and generating anddisplaying an output, on a display, the output including an indicator ofthe effective altitude based on the comparison of the absolutedifference value against the preset comparison value.
 16. The medium ofclaim 15, wherein the operations further comprise iteratively adjustingthe value of the first altitude value, and repeating the operations toderive the absolute difference value, until a matching condition isreached in which the absolute difference value is equal to or smallerthan the preset comparison value.
 17. The medium of claim 15, whereinthe operations further comprise assigning the value of the firstaltitude value to the effective altitude and generating the indicator ofthe effective altitude as the output.
 18. The medium of claim 15,wherein the operations further comprise calculating and displaying onthe display a flightpath of a sports object based on the effectivealtitude.
 19. The medium of claim 18, wherein the operations furthercomprise displaying on the display a value of a wind speed or directioninto the calculation or generation of the flightpath.
 20. The medium ofclaim 18, wherein the operations further comprise displaying on thedisplay a value of a height difference between a release position and alanding position of the sports object into the calculation or generationof the flightpath.